home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
iguana
/
incosrc
/
incosrc.exe
/
FIRE
/
CREDITS.ASM
next >
Wrap
Assembly Source File
|
1993-08-14
|
30KB
|
1,152 lines
; ------------------------------ CREDITS.ASM ---------------------
; Credits part.
; (C) 1993 bye JCAB.
TRACE = 0
.MODEL SMALL
.STACK 1400
.386P
DOSSEG
LOCALS
JUMPS
INCLUDE VGASM.INC
INCLUDE VBLIB.INC
INCLUDE VTASM.INC
SCRW = 80
DT01 SEGMENT PARA PUBLIC
EXTRN FireFont : BYTE
EXTRN FireBlastFont : BYTE
ENDS
DGROUP GROUP DT01
;===================================================
.CODE
A_GDT label byte
NullDes dw 0, 0, 0, 0
CodeDes dw 0ffffh ; limit (bits 24-31)
db 0, 0, 0 ; base (bits 0-23)
db 10011011B ; present / DPL 0 / code / non conforming / readable
db 11001111B ; size 4Gb / 32 bits / limit
db 0 ; base
DataDes dw 0ffffh ; limit (bits 24-31)
db 0, 0, 0 ; base (bits 0-23)
db 10010011B ; present / DPL 0 / data / writeable
db 10001111B ; size 4Gb / 32 bits / limit
db 0 ; base
A_GDT_PTR dw 17h ; gdt size
dd 0 ; gdt linear base
;===================================================
.CODE
.STARTUP
CLD
; Protected mode fixup. Some programs like TLink from Borland leave the
; 386 segment registers unusable. This is to get them back.
SMSW AX
TEST AX,1
JNZ @@alreadyPM ; Do not fix if we are already in PM.
PUSH CS
SUB EAX,EAX
POP AX
SHL EAX,4
ADD EAX,OFFSET A_GDT
MOV DWORD PTR CS:[A_GDT_PTR].2,EAX
LGDT QWORD PTR CS:A_GDT_PTR
SMSW AX
OR AX,1
LMSW AX ; now running on protected mode
JMP @@ll1 ; clear prefetch queue
@@ll1:
MOV AX,10h ; adjust data selectors
MOV GS,AX
MOV FS,AX
MOV EAX,CR0
AND EAX,0FFFFFFFEh
MOV CR0,EAX ; now running on real mode
JMP @@ll2 ; clear prefetch queue
@@ll2:
XOR AX,AX
MOV FS,AX
MOV GS,AX
@@alreadyPM:
; End of PM fixup.
CALL InitMusic
CALL SetupCreditsVideo
CALL VTDisconnectTimer
MOV CS:[VBLFullHandler],OFFSET CreditsFullHandler
XOR SI,SI
CALL InitializeTimerVBL
CALL VBLVSync
MainLoop:
SetBorder 10, 10, 10
MOV AX,3
CALL VBLVSyncAX
INC [LoopCounter]
INC [FrameCounter]
CMP [FrameCounter],3
JC @@1
MOV [FrameCounter],0
@@1:
SetBorder 0,63,0
CALL CallMusic
CALL CallMusic
CALL CallMusic
SetBorder 63,0,0
CALL DumpFire
MOV AX,[FireOfs1]
MOV BX,[FireOfs2]
MOV [FireOfs1],BX
MOV [FireOfs2],AX
SetBorder 0,63,0
CALL CallMusic
CALL CallMusic
CALL CallMusic
SetBorder 63,63,0
CALL CreateFire
CALL CallMusic
CALL CallMusic
CALL CallMusic
CALL MoveFire
SetBorder 0,63,0
CALL CallMusic
CALL CallMusic
CALL CallMusic
SetBorder 0,0,63
CALL WriteSentence
SetBorder 0,63,0
CALL CallMusic
CALL CallMusic
CALL CallMusic
CMP [FireCounter],50+80
JNC @@2
DEC [FireCounter]
JZ ByeBye
JMP @@goon
@@2:
MOV BX,41h
MOV AL,0
CALL VTCheckSemaphore
JZ @@goon
DEC [FireCounter]
JZ ByeBye
@@goon:
MOV AH,1
INT 16h
JZ MainLoop
XOR AX,AX
INT 16h
SUB [FireCounter],80
JBE ByeBye
JMP MainLoop
ByeBye:
CALL EndTimerVBL
CALL VTConnectTimer
MOV AX,3
INT 10h
CALL RestoreSystemTime
MOV AX,4C00h
INT 21h
; =======================================
CreditsFullHandler:
PUSH DS
PUSH BX
PUSHA
MOV AX,@data
MOV DS,AX
CALL CtrlFades
POPA
POP BX
POP DS
RET
; =======================================
SetupCreditsVideo1:
MOV BX,OFFSET PalXlatTable
XOR BL,BL
INC BH
MOV CX,63
XOR AL,AL
@@lp:
MOV [BX],AL
INC BX
INC AL
LOOP @@lp
MOV CX,256-63
@@lp1:
MOV [BX],AL
INC BX
LOOP @@lp1
VSync
MOV BX,SCRW*(216*2 + 16) ; Value from the BALLS part.
MOV DX,3D4h ; Set the display page.
MOV AL,0Ch
MOV AH,BH
OUT DX,AX
INC AL
MOV AH,BL
OUT DX,AX
VSync
; Setup the video addressing mode.
MOV DX,3C0h
MOV AL,30h
OUT DX,AL
MOV AL,01100001b
OUT DX,AL
MOV DX,3c4h
MOV AX,604h ; "Unchain my heart". And my VGA...
OUT DX,AX
MOV AX,0F02h ; All planes
OUT DX,AX
; Comienzo del modo de Hz reducidos.
MOV DX,3D4h
MOV CX,18h
MOV SI,OFFSET CRTCregs
@@cl1:
LODSW
; OUT DX,AX
LOOP @@cl1
; Final del modo de Hz reducidos.
MOV AX,14h ; Disable dword mode
OUT DX,AX
MOV AX,0E317h ; Enable byte mode.
OUT DX,AX
VSync
MOV DX,3D4h ; Set the display page to 0.
MOV AL,0Ch
XOR AH,AH
OUT DX,AX
INC AL
OUT DX,AX
VSync
XOR DI,DI ; Clear the screen. All planes.
MOV AX,0A000h
MOV ES,AX
XOR AX,AX
MOV CX,8000h
REP STOSW
MOV SI,OFFSET NormalPalette
MOV CX,256
XOR AL,AL
CALL DumpPalette
RET
SetupCreditsVideo:
MOV BX,OFFSET PalXlatTable
XOR BL,BL
INC BH
MOV CX,63
XOR AL,AL
@@lp:
MOV [BX],AL
INC BX
INC AL
LOOP @@lp
MOV CX,256-63
@@lp1:
MOV [BX],AL
INC BX
LOOP @@lp1
CALL ZeroPalette
MOV AX,13h
INT 10h
; CALL ZeroPalette
VSync
MOV DX,3C0h
MOV AL,30h
OUT DX,AL
MOV AL,01100001b
OUT DX,AL
MOV DX,3c4h
MOV AX,604h ; "Unchain my heart". And my VGA...
OUT DX,AX
MOV AX,0F02h ; All planes
OUT DX,AX
; Comienzo del modo de Hz reducidos.
MOV DX,3D4h
MOV CX,18h
MOV SI,OFFSET CRTCregs
@@cl1:
LODSW
; OUT DX,AX
LOOP @@cl1
; Final del modo de Hz reducidos.
MOV AX,14h ; Disable dword mode
OUT DX,AX
MOV AX,0E317h ; Enable byte mode.
OUT DX,AX
XOR DI,DI ; Clear the screen. All planes.
MOV AX,0A000h
MOV ES,AX
XOR AX,AX
MOV CX,8000h
REP STOSW
MOV SI,OFFSET NormalPalette
MOV CX,256
XOR AL,AL
CALL DumpPalette
RET
; =======================================
GetRandomNumber:
MOV AX,[RandSeed]
MOV BX,[RandSeed2]
MOV BP,[RandSeed3]
ADD AX,0a137h
ADD BX,63f7h
ADD BP,784Ah
ROL AX,2
MOV [RandSeed],AX
ADD BX,AX
ROR BX,1
MOV [RandSeed2],BX
SUB BP,BX
XOR AX,BP
MOV [RandSeed3],BP
ADD AX,BX
RET
; =======================================
CreateFire:
MOV CX,[FireCounter]
SUB CX,50
JBE @@ret
CMP CX,10
JNZ @@lp
ADD [MsgPtr],2
@@lp:
CALL GetRandomNumber
CMP AL,80
JNC @@nx
XOR AH,AH
ADD AX,AX
MOV SI,[FireOfs1]
ADD SI,AX
ADD SI,54*80*2
MOV WORD PTR [SI],255
@@nx:
LOOP @@lp
@@ret:
RET
; =======================================
MoveFire:
PUSH DS
POP ES
MOV SI,[FireOfs1]
MOV DI,[FireOfs2]
ADD SI,81*2
MOV CX,80*57
MOV DX,[SI-6]
ADD DX,[SI-4]
ADD DX,[SI-2]
MOV BX,[SI-6+80*4]
ADD BX,[SI-4+80*4]
ADD BX,[SI-2+80*4]
@@lp:
REPT 32
ADD DX,[SI]
SUB DX,[SI-6]
ADD BX,[SI+80*4]
SUB BX,[SI+80*4-6]
MOV AX,BX
ADD AX,DX
ADD AX,[SI+80*2]
ADD AX,[SI+80*2-4]
SHR AX,3
JZ SMALL @@sal
DEC AX
STOSW
ADD SI,2
DEC CX
JZ SMALL @@Fin
ENDM
LOOP SMALL @@lp
@@Fin:
RET
@@sal:
XOR AX,AX
STOSW
ADD SI,2
LOOP SMALL @@lp
RET
; =======================================
DumpFire:
MOV DX,3C4h
MOV AX,0F02h ; All planes
OUT DX,AX
MOV DX,3CEh ; Bitmask...
MOV AX,03F08h ; 00111111b
OUT DX,AX
MOV BX,OFFSET PalXlatTable
XOR BL,BL
INC BH
MOV SI,[FireOfs2]
XOR DI,DI
ADD SI,80*2
MOV AX,0A000h
MOV ES,AX
CMP [EraseMsg],0
JZ @@noera
MOV [EraseMsg],0
MOV AH,ES:[0]
MOV CX,50
CALL @@DumpOnly
JMP @@Fin
@@noera:
MOV AH,ES:[0]
MOV CX,23
CALL @@DumpOnly
COMMENT #
MOV CX,4
CALL @@DumpText
MOV AH,ES:[0]
MOV CX,4
CALL @@DumpOnly
#
MOV CX,4
CALL @@DumpText
MOV AH,ES:[0]
MOV CX,4
CALL @@DumpOnly
MOV CX,4
CALL @@DumpText
MOV AH,ES:[0]
MOV CX,23-8
CALL @@DumpOnly
@@Fin:
MOV DX,3CEh ; Bitmask...
MOV AX,0FF08h ; 11111111b
OUT DX,AX
RET
@@DumpText:
@@lp1:
REPT 80
LODSW
MOV BL,AL
MOV AL,[BX]
MOV AH,ES:[DI+80]
MOV ES:[DI+80 ],AL
MOV AH,ES:[DI+80*2]
MOV ES:[DI+80*2],AL
MOV AH,ES:[DI+80*3]
MOV ES:[DI+80*3],AL
MOV AH,ES:[DI]
STOSB
ENDM
ADD DI,80*3
LOOP SMALL @@lp1
RET
@@DumpOnly:
@@lp:
REPT 40
LODSW
MOV BL,AL
MOV AL,[BX]
MOV BL,[SI]
MOV AH,[BX]
ADD SI,2
MOV ES:[DI+80 ],AX
MOV ES:[DI+80*2],AX
MOV ES:[DI+80*3],AX
STOSW
ENDM
ADD DI,80*3
LOOP SMALL @@lp
RET
; =======================================
CheckChar MACRO Src, Dest
LOCAL @@p
CMP AL,Src
JNZ @@p
MOV AL,Dest
JMP @@px
@@p:
ENDM
WriteSentence:
MOV SI,[MsgPtr]
LODSB
AND AL,AL
JZ @@Sync2
CMP AL,1
JZ @@Sync
CMP AL,2
JNZ @@dochar
ADD [ScrPtr],SCRW*31
ADD [BlastPtr],SCRW*3
LODSB
@@dochar:
MOV [MsgPtr],SI
CheckChar '.', 'Z'-'A'+1
CheckChar '!', 'Z'-'A'+2
CheckChar ':', 'Z'-'A'+3
CheckChar '-', 'Z'-'A'+4
CheckChar '(', 'Z'-'A'+5
CheckChar ')', 'Z'-'A'+6
CheckChar '3', 'Z'-'A'+7
CheckChar '0', 'Z'-'A'+8
CheckChar '?', 'Z'-'A'+9
CheckChar '1', 'Z'-'A'+10
CheckChar '2', 'Z'-'A'+11
CheckChar '4', 'Z'-'A'+12
CheckChar '5', 'Z'-'A'+13
CheckChar '6', 'Z'-'A'+14
CheckChar '8', 'Z'-'A'+15
CheckChar ',', 'Z'-'A'+16
CheckChar ';', 'Z'-'A'+17
CheckChar '9', 'Z'-'A'+18
CheckChar ' ', 59
SUB AL,'A'
@@px:
PUSH AX
MOV AH,AL
XOR AL,AL
MOV SI,OFFSET DGROUP:FireFont
ADD SI,AX
MOV DX,3CEh ; Bitmask...
MOV AX,0C008h ; 11000000b
OUT DX,AX
MOV DI,[ScrPtr]
MOV AX,0A000h
MOV ES,AX
MOV BL,11h
MOV CX,16
@@lp0:
PUSH CX
PUSH DI
MOV DX,3C4h
MOV AL,2
MOV AH,BL
OUT DX,AX
MOV CX,8
@@lp1:
LODSW
MOV BH,ES:[DI]
MOV ES:[DI],AL
MOV BH,ES:[DI+SCRW]
MOV ES:[DI+SCRW],AH
ADD DI,SCRW*2
LOOP @@lp1
POP DI
ROL BL,1
JNC @@c1
INC DI
@@c1:POP CX
LOOP @@lp0
POP AX
PUSH DS
POP ES
MOV DI,[BlastPtr]
MOV SI,OFFSET DGROUP:FireBlastFont
XOR AH,AH
SHL AX,4
ADD SI,AX
MOV CX,4
@@lpb:
MOVSW
MOVSW
ADD DI,SCRW-4
LOOP @@lpb
ADD [ScrPtr],4
ADD [BlastPtr],4
MOV DX,3C4h
MOV AX,0F02h ; All planes
OUT DX,AX
MOV DX,3CEh ; Bitmask...
MOV AX,0FF08h ; 11111111b
OUT DX,AX
@@ret:
RET
@@Sync:
MOV [MsgPtr],SI
MOV AL,[Color]
XOR AH,AH
MOV BX,64*9
MUL BX
ADD AX,OFFSET TextPalettes
MOV [ColorPal],AX
MOV SI,OFFSET NormalPalette
MOV DI,OFFSET PaletteBuf
PUSH DS
POP ES
MOV CX,64*9/2
REP MOVSW
MOV [FadeCount],0
MOV [Finished],0
MOV [FadeMode],0
RET
@@Sync2:
CMP BYTE PTR [SI],255
JNZ @@1
MOV [DoFade2],0
@@1:
CMP BYTE PTR [SI],254
JZ @@2
CMP [Finished],0
JZ @@ret
@@2:
LODSB
CMP AL,255
JZ @@ret
PUSH AX
PUSH SI
MOV SI,OFFSET BlastBuf
MOV DI,SCRW*23*2
ADD DI,[FireOfs2]
MOV CX,SCRW*2
@@l1:
LODSW
ADD AX,AX
OR [DI],AL
ADD DI,2
OR [DI],AH
ADD DI,2
LOOP @@l1
ADD DI,SCRW*8
MOV CX,SCRW*2
@@l2:
LODSW
ADD AX,AX
OR [DI],AL
ADD DI,2
OR [DI],AH
ADD DI,2
LOOP @@l2
PUSH DS
POP ES
MOV DI,OFFSET BlastBuf
MOV CX,SCRW*4
XOR AX,AX
REP STOSW
POP SI
POP AX
MOV [EraseMsg],1
MOV [FadeMode],2
MOV [MsgPtr],SI
MOV [ScrPtr],SCRW*23*4
MOV [BlastPtr],OFFSET BlastBuf
MOV [Color],AL
RET
; =======================================
CtrlFades:
MOV AL,[Alternate]
XOR AH,AH
MOV BX,32*3
MUL BX
MOV BL,AL
ADD BL,64
MOV CX,AX
ADD CX,AX
ADD CX,AX
CMP [FadeMode],0
JZ @@Mode0
CMP [FadeMode],1
JZ @@Mode1
CMP [FadeMode],2
JZ @@Mode2
CMP [FadeMode],3
JNZ @@Fin
@@Mode2:
MOV SI,OFFSET NormalPalette + 64*3
ADD SI,CX
MOV CX,32*3
MOV AL,BL
CALL DumpPalette
INC [FadeMode]
JMP @@Fin
@@Mode0:
PUSH CX
MOV SI,OFFSET PaletteBuf
ADD SI,CX
MOV CX,32*3
MOV AL,BL
CALL DumpPalette
POP CX
MOV SI,[ColorPal]
MOV DI,OFFSET PaletteBuf
ADD SI,CX
ADD DI,CX
MOV CX,32*3
MOV DX,[FadeCount]
TEST DL,2
JNZ @@no0
SHL DX,6
XOR DH,DH
CALL FadePal
@@no0:
INC [FadeCount]
CMP [FadeCount],256
JC @@Fin
MOV [FadeCount],0
MOV [FadeMode],1
CMP [DoFade2],1
JZ @@Fin
MOV [FadeMode],255
JMP @@Fin
@@Mode1:
PUSH CX
MOV SI,OFFSET PaletteBuf
ADD SI,CX
MOV CX,32*3
MOV AL,BL
CALL DumpPalette
POP CX
MOV DI,OFFSET PaletteBuf
ADD DI,CX
MOV CX,32*3
MOV DX,[FadeCount]
SHL DX,7
MOV DL,64
SUB DL,DH
MOV DH,DL
MOV DL,63
CALL FadeCol
INC [FadeCount]
CMP [FadeCount],129
JC @@Fin
MOV [Finished],1
MOV [FadeMode],255
@@Fin:
XOR [Alternate],1
RET
; =======================================
; =======================================
; =======================================
; =======================================
; =======================================
; =======================================
; =======================================
.DATA
CRTCregs LABEL BYTE ; Modo 13h
DB 11h, 04h ; End vertical retrace. (0-0Fh) ; DB 11h, 8Eh
DB 00h, 64h ; Horizontal total. ; DB 00h, 5Fh
DB 01h, 4Fh ; Horizontal display enable end. ; DB 01h, 4Fh
DB 02h, 50h ; Start horizontal blanking. ; DB 02h, 50h
DB 03h, 80h+07h ; End horizontal blanking. (0-1Fh) ; DB 03h, 82h
DB 04h, 5Bh ; Start horizontal retrace. ; DB 04h, 54h
DB 05h, 80h+05h ; End horizontal retrace. (0-1Fh) ; DB 05h, 80h
DB 06h,0FFh ; Vertical total. (+7.0 +7.5) ; DB 06h, BFh
DB 07h, 00011111b ; Overflow (high bits of vertical registers). ; DB 07h, 1Fh
DB 08h, 00h ; DB 08h, 00h
DB 09h, 41h ; DB 09h, 41h
DB 0Ah, 00h ; DB 0Ah, 00h
DB 0Bh, 00h ; DB 0Bh, 00h
DB 0Ch, 00h ; DB 0Ch, 00h
DB 0Dh, 00h ; DB 0Dh, 00h
DB 0Eh, 00h ; DB 0Eh, 00h
DB 0Fh, 00h ; DB 0Fh, 00h
DB 10h,0C0h ; Start vertical retrace. (+7.2 +7.7) ; DB 10h, 9Ch
;
; 11h ────┘ ; End vertical retrace. (0-0Fh)
DB 12h, 8Fh ; Vertical display enable end. (+7.1 +7.6) ; DB 12h, 8Fh
DB 13h, 28h ; DB 13h, 28h
DB 14h, 40h ; DB 14h, 40h
DB 15h,097h ; Start vertical blanking. (+7.3 +9.5) ; DB 15h, 96h
DB 16h,0F8h ; End vertical blanking. ; DB 16h, B9h
DB 17h,0A3h ; DB 17h, A3h
DB 18h,0FFh ; DB 18h, FFh
ALIGN 2
FrameCounter DW 0
RandSeed DW 348Bh
RandSeed2 DW 7F34h
RandSeed3 DW 32bfh
LoopCounter DW 0
NormalPalette LABEL BYTE
; ----- Normal Palette. ------------
DB 0, 0, 0, 0, 1, 1, 0, 4, 5, 0, 7, 9
DB 0, 8, 11, 0, 9, 12, 15, 6, 8, 25, 4, 4
DB 33, 3, 3, 40, 2, 2, 48, 2, 2, 55, 1, 1
DB 63, 0, 0, 63, 0, 0, 63, 3, 0, 63, 7, 0
DB 63, 10, 0, 63, 13, 0, 63, 16, 0, 63, 20, 0
DB 63, 23, 0, 63, 26, 0, 63, 29, 0, 63, 33, 0
DB 63, 36, 0, 63, 39, 0, 63, 39, 0, 63, 40, 0
DB 63, 40, 0, 63, 41, 0, 63, 42, 0, 63, 42, 0
DB 63, 43, 0, 63, 44, 0, 63, 44, 0, 63, 45, 0
DB 63, 45, 0, 63, 46, 0, 63, 47, 0, 63, 47, 0
DB 63, 48, 0, 63, 49, 0, 63, 49, 0, 63, 50, 0
DB 63, 51, 0, 63, 51, 0, 63, 52, 0, 63, 53, 0
DB 63, 53, 0, 63, 54, 0, 63, 55, 0, 63, 55, 0
DB 63, 56, 0, 63, 57, 0, 63, 57, 0, 63, 58, 0
DB 63, 58, 0, 63, 59, 0, 63, 60, 0, 63, 60, 0
DB 63, 61, 0, 63, 62, 0, 63, 62, 0, 63, 63, 63
DB 0, 0, 0, 0, 1, 1, 0, 4, 5, 0, 7, 9
DB 0, 8, 11, 0, 9, 12, 15, 6, 8, 25, 4, 4
DB 33, 3, 3, 40, 2, 2, 48, 2, 2, 55, 1, 1
DB 63, 0, 0, 63, 0, 0, 63, 3, 0, 63, 7, 0
DB 63, 10, 0, 63, 13, 0, 63, 16, 0, 63, 20, 0
DB 63, 23, 0, 63, 26, 0, 63, 29, 0, 63, 33, 0
DB 63, 36, 0, 63, 39, 0, 63, 39, 0, 63, 40, 0
DB 63, 40, 0, 63, 41, 0, 63, 42, 0, 63, 42, 0
DB 63, 43, 0, 63, 44, 0, 63, 44, 0, 63, 45, 0
DB 63, 45, 0, 63, 46, 0, 63, 47, 0, 63, 47, 0
DB 63, 48, 0, 63, 49, 0, 63, 49, 0, 63, 50, 0
DB 63, 51, 0, 63, 51, 0, 63, 52, 0, 63, 53, 0
DB 63, 53, 0, 63, 54, 0, 63, 55, 0, 63, 55, 0
DB 63, 56, 0, 63, 57, 0, 63, 57, 0, 63, 58, 0
DB 63, 58, 0, 63, 59, 0, 63, 60, 0, 63, 60, 0
DB 63, 61, 0, 63, 62, 0, 63, 62, 0, 63, 63, 63
DB 0, 0, 0, 0, 1, 1, 0, 4, 5, 0, 7, 9
DB 0, 8, 11, 0, 9, 12, 15, 6, 8, 25, 4, 4
DB 33, 3, 3, 40, 2, 2, 48, 2, 2, 55, 1, 1
DB 63, 0, 0, 63, 0, 0, 63, 3, 0, 63, 7, 0
DB 63, 10, 0, 63, 13, 0, 63, 16, 0, 63, 20, 0
DB 63, 23, 0, 63, 26, 0, 63, 29, 0, 63, 33, 0
DB 63, 36, 0, 63, 39, 0, 63, 39, 0, 63, 40, 0
DB 63, 40, 0, 63, 41, 0, 63, 42, 0, 63, 42, 0
DB 63, 43, 0, 63, 44, 0, 63, 44, 0, 63, 45, 0
DB 63, 45, 0, 63, 46, 0, 63, 47, 0, 63, 47, 0
DB 63, 48, 0, 63, 49, 0, 63, 49, 0, 63, 50, 0
DB 63, 51, 0, 63, 51, 0, 63, 52, 0, 63, 53, 0
DB 63, 53, 0, 63, 54, 0, 63, 55, 0, 63, 55, 0
DB 63, 56, 0, 63, 57, 0, 63, 57, 0, 63, 58, 0
DB 63, 58, 0, 63, 59, 0, 63, 60, 0, 63, 60, 0
DB 63, 61, 0, 63, 62, 0, 63, 62, 0, 63, 63, 63
DB 0, 0, 0, 0, 1, 1, 0, 4, 5, 0, 7, 9
DB 0, 8, 11, 0, 9, 12, 15, 6, 8, 25, 4, 4
DB 33, 3, 3, 40, 2, 2, 48, 2, 2, 55, 1, 1
DB 63, 0, 0, 63, 0, 0, 63, 3, 0, 63, 7, 0
DB 63, 10, 0, 63, 13, 0, 63, 16, 0, 63, 20, 0
DB 63, 23, 0, 63, 26, 0, 63, 29, 0, 63, 33, 0
DB 63, 36, 0, 63, 39, 0, 63, 39, 0, 63, 40, 0
DB 63, 40, 0, 63, 41, 0, 63, 42, 0, 63, 42, 0
DB 63, 43, 0, 63, 44, 0, 63, 44, 0, 63, 45, 0
DB 63, 45, 0, 63, 46, 0, 63, 47, 0, 63, 47, 0
DB 63, 48, 0, 63, 49, 0, 63, 49, 0, 63, 50, 0
DB 63, 51, 0, 63, 51, 0, 63, 52, 0, 63, 53, 0
DB 63, 53, 0, 63, 54, 0, 63, 55, 0, 63, 55, 0
DB 63, 56, 0, 63, 57, 0, 63, 57, 0, 63, 58, 0
DB 63, 58, 0, 63, 59, 0, 63, 60, 0, 63, 60, 0
DB 63, 61, 0, 63, 62, 0, 63, 62, 0, 63, 63, 63
TextPalettes LABEL BYTE
GreenPal LABEL BYTE
DB 64 DUP (0, 16, 0)
DB 64 DUP (0, 40, 0)
DB 64 DUP (0, 63, 0)
BluePal LABEL BYTE
DB 64 DUP ( 0, 16, 30)
DB 64 DUP ( 0, 26, 50)
DB 64 DUP (14, 40, 63)
MagPal LABEL BYTE
DB 64 DUP (21, 0, 39)
DB 64 DUP (34, 12, 51)
DB 64 DUP (46, 23, 63)
CyanPal LABEL BYTE
DB 64 DUP ( 0, 21, 39)
DB 64 DUP (12, 33, 51)
DB 64 DUP (23, 45, 63)
GrayPal LABEL BYTE
DB 64 DUP (16, 16, 16)
DB 64 DUP (40, 40, 40)
DB 64 DUP (63, 63, 63)
EmptyPalette DB 768 DUP(0)
EVENDATA
ScrOffsets LABEL WORD
i = 0
REPT 200
DW i
i = i + SCRW
ENDM
ArrayFire1 DW 80*60 DUP(00)
DW 80*5 DUP(0)
ArrayFire2 DW 80*65 DUP(0)
FireOfs1 DW OFFSET ArrayFire1
FireOfs2 DW OFFSET ArrayFire2
PalXlatTable DB 512 DUP(0)
PaletteBuf DB 64*9 DUP(0)
BlastBuf DB SCRW*4*2 DUP(0)
EraseMsg DB 0
DoFade2 DB 1
FadeMode DB 0
Alternate DB 0
Finished DB 1
Color DB 0
FadeCount DW 0
ColorPal DW 0
FireCounter DW 80+50
MsgPtr DW OFFSET NullMsg
ScrPtr DW SCRW*23*4
BlastPtr DW OFFSET BlastBuf
NullMsg DB 0
Message LABEL BYTE
DB 0, ' ', 1, 0
DB 4, ' THIS IS THE END OF ', 2
DB ' THE INCONEXIA DEMO ', 1, 0
DB 0, ' MEMBERS OF IGUANA: ', 1, 0
DB 1, ' JCAB ', 2
DB ' CODER ', 1, 0
DB 2, ' JARE ', 2
DB ' CODER ', 1, 0
DB 3, ' COI ', 2
DB ' GRAFIX-MUSICIAN ', 1, 0
DB 1, ' THRYXXON ', 2
DB ' MUSICIAN ', 1, 0
DB 2, ' MIGUEL ', 2
DB ' SYSOP-PR ', 1, 0
DB 4, ' COLLABORATIONS BY: ', 1, 0
DB 3, ' ARM ', 2
DB ' CODER ', 1, 0
DB 1, ' RED DEVIL ', 2
DB ' FONTS-IDEAS ', 1, 0
DB 2, ' 303 ACID FACTORY ', 2
DB ' MUSICIAN ', 1, 0
DB 3, ' D.J. ', 2
DB ' INSTRUMENT SAMPLER ', 1, 0
DB 4, ' HARDWARE WE USED: ', 1, 0
DB 1, ' 386-25 (UNCACHED) ', 2
DB 'CACHES ARE LAME! ;-)', 1, 0
DB 2, ' HICOLOR ET-4000 ', 2
DB ' SB 2.0 (NO PRO) ', 1, 0
DB 3, ' 1200 DPI SCANNER ', 2
DB ' TASM 3.2 - TP 6.0 ', 1, 0
DB 1, 'ANTI-TLINK PROT SYST', 2
DB ' (BY OURSELVES) ', 1, 0
DB 2, ' TRITON FASTRACKER ', 2
DB '(GREAT JOB, MR. H!) ', 1, 0
DB 0, ' AND OF COURSE ... ', 2
DB 'THE VANGELISTRACKER ', 1, 0
DB 0, 'IN FACT, THE DEMOVT ', 2
DB 'SOON TO BE RELEASED ', 1, 0
DB 4, 'THE WHOLE INCONEXIA ', 1, 0
DB 4, ' HAS BEEN SEQUENCED ', 2
DB ' USING DEMOVT ', 1, 0
DB 0, ' TO CONTACT IGUANA ', 1, 0
DB 0, ' CALL BLASTERSOUND ', 2
DB ' BBS: 34-58-293583 ', 1, 0
DB 0, '(C) MCMXCIII IGUANA', 1, 0
DB 255
DB 0, 254
DB 0, 255
END
; ------------------------ End of CREDITS.ASM ---------------------------